package com.guigu.qingcheng.servicegoods.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guigu.qingcheng.pojo.goods.TbSku;
import com.guigu.qingcheng.pojo.order.TbOrderItem;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品表 服务类
 * </p>
 *
 * @author testjava
 * @since 2020-07-08
 */
public interface TbSkuService extends IService<TbSku> {
    /**
     *分页查询待条件
     * @param searchMap
     * @param page
     * @param size
     * @return
     */
    Page<TbSku> findPage(Map<String, Object> searchMap, int page, int size);

    /**
     * 条件查询不分页
     * @param searchMap
     * @return
     */
    List<TbSku> findList(Map<String, Object> searchMap);

    /**
     * 保存全部价格到缓存
     */
    public void saveAllPriceToRedis();

    public Integer findPrice(String id);

    /**
     * 保存价格到缓存
     * @param id
     */
    public void savePriceToRedisById(String id, Integer price);

    /**
     * 根据sku id 删除商品价格缓存
     * @param id
     */
    public void deletePriceFromRedis(String id);

    /**
     * 根据购物车批量扣减库存
     * @param oderItemList
     */
    public boolean deductionStock(List<TbOrderItem> oderItemList);
}
